NeXT TypedStream Data | 1994-11-04 | 13.1 KB | 287 lines
typedstream
IBObjectData
Object
CustomObject
Application
Responder
ClipView
ScrollView
Scroller
Control
_doScroller:
@@@ffs
NXCursor
NXImage
NXibeam
ciifffcfffs
[7528c]{\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;}
\margl40
\margr40
{\colortbl;\red0\green0\blue0;}
\pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\f0\b\i0\ulnone\fs24\fc0\cf0 TIFF ANIMATION SEQUENCE --> MPEG video file
\b0 \
This program reads a sequence of files representing N frames in an animation sequence, translates each to PPM format, and then compresses the resulting sequence into a single MPEG movie file, using the "mpeg-encode" program available from \
\pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\fc0\cf0 The "defaults" button assumes that the animation is in a NeXT-style "anim" bundle, for example "~/Library/Images/Movies/Globe.anim", holding 24-bit RGB TIFF files, possibly compressed by NeXT's LZW or JPEG algorithms, and in this example named "Globe.framenumber.tiff" where framenumber takes all integer values from 1 to 72 inclusive.\
\b The prefixnames of all frame files in the animation directory must be identical to each other, and to the prefixname of the directory. The .anim extension of the directoryname may be omitted, but the extension of each frame file must be .framenumber, followed by lowercase .tiff.
\b0 \
The TIFF frame format may be replaced by PPM or YUV, as well as GIF or any of the formats supported by Poskanzer's public domain pbmplus package. Any format
\b NOT TIFF, PPM, YUV, or SPECIAL
\b0 requires that you specify the search path to the pbmplus executable. Frame formats
\b RAW and YUV contain no header information,
\b0 and thus require that you provide the frame width and height, in that order, separated by "x" or "X". Frame format
\b RGB3
\b0 requires three PGM files for each frame, with extensions
\b .framenumber
\b0 followed by
\b .r
\b0 ,
\b .g
\b0 , or
\b .b
\b0 , indicating red, green, or blue. All other formats must follow the same naming convention as the NeXT "anim" format, i.e. "Name.*.type", where \
Name = name of the animation directory, \
* = integer framenumber, \
type = lowercase Frame Format (tiff, gif, yuv, etc)\
except for RGB3, as noted above.\
If your frames aren't in any of the supported formats, you may either translate them yourself, or you may choose SPECIAL from the PopUpList, type in your own chosen extension, for example "MyType", and copy an executable translator named "MyType2ppm" into toMPEG.app, using the same case as the filename extension. Your translator must take a single frame filename as input on the commandline, and output a ppm copy of that frame to stdout. To help with that, here's the Objective-C source for the tiff2ppm executable:\
\pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0\cf0 // tiff2ppm.m: Translate a TIFF file to PPM format\